package models.operate;

import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import play.db.jpa.Model;
import models.user.Customer;

/**
 * 到货批次也称到货总单
 * 
 * 记录同一个时间到货的, 包裹数量,总重量,客户id,时间
 * 
 * 到货方式(上门收货(司机),快递到货(快递单号),客户自送(客户姓名),代送(姓名))
 * 
 * 到货总单的每一个包裹明细 在 ArriveDetail
 * 
 * @author yechao
 * 
 * @date 2013年11月2日
 */
@Entity
@Table(name = "arrive_order_batch")
public class ArriveOrderBatch extends Model {

	/**
	 * 客户Id customer表的id
	 */
	@Column(name = "customer_id")
	public Long customerId;

	/**
	 * 客户帐号
	 */
	@ManyToOne(cascade = { CascadeType.MERGE, CascadeType.REFRESH }, optional = false, fetch = FetchType.LAZY)
	@JoinColumn(name = "customer_id", insertable = false, updatable = false)
	public Customer customer;

	/**
	 * 到货时间
	 */
	@Column(name = "arrive_time")
	public Date arriveTime;

	/**
	 * 总票数 (不区分 文件,包裹)
	 */
	@Column(name = "total_number")
	public Integer totalNumber;

	/**
	 * 总计费重
	 * 
	 * 小包收货 可以按总重量计费. 可以称整袋重量并扫描件数,无需称每件重量
	 * 
	 * 而快件是必须按每件重量收费,所以必须每件扫描称重
	 */
	@Column(name = "charge_weight")
	public Float chargeWeight;

	/**
	 * 到货方式[上门收货(司机),快递到货(快递单号),客户自送(客户姓名),代送(姓名)]
	 */
	@Column(name = "arrive_way")
	public Integer arriveWay;

	/**
	 * 载体
	 * 
	 * 如果 arriveWay是上门收货 vector 指的是司机
	 * 
	 * 如果 arriveWay是快递到货 vector 指的是快递单号
	 * 
	 * ...
	 */
	@Column(name = "vector")
	public String vector;

	/**
	 * 备注
	 */
	@Column(name = "remark")
	public Integer remark;
}
